#include <i386/console.h>
#include <i386/stdio.h>
#include <stdarg.h>

int printf(const char *fmt, ...) {
	char buf[4*1024];
	va_list parms;
	int result;
	
	va_start(parms, fmt);
	result = vsprintf(buf, (char *) fmt, parms);
	va_end(parms);
	
	cputs(buf);
	
	return result;
}

int printf_xy(int x, int y, char attr, char *fmt, ...) {
	char cbuf[200];
	va_list parms;
	int result;
	
	va_start(parms, fmt);
	result = vsprintf(cbuf, fmt, parms);
	va_end(parms);
	
	puts_xy(x, y, attr, cbuf);
	
	return result;
}

int cprintf(char *fmt, ...) {
	static char cbuf[2048];
	
	va_list parms;
	int result;
	
	va_start(parms, fmt);
	result = vsprintf(cbuf, fmt, parms);
	va_end(parms);
	
	cputs(cbuf);
	
	return result;
}
